In [53]:
# VM Setup commands

def start_vm(kernel):
    !VM_CLI_IMAGE_PATH=/home/kpsingh/debian.img vm -q -k {kernel} && echo "Success"
    
def stop_vm():
    !pkill qemu

def vmrun(cmd):
    !ssh vm "{cmd}"
    
def pin_vm():
    !pin-vm -q

def pull(src, dest):
    !scp -r vm:{src} {dest}

def push(src, dest):
    !scp -r {src} vm:{dest}
In [54]:
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go
import numpy as np
import os 

import plotly
plotly.io.renderers.default='notebook'

NBINS = 50
FONT = dict(family="Courier New, monospace", size=18, color="White")
THEME = 'plotly_dark'

def format_name(n):
    n = n.replace("_", " ")
    return n.capitalize()


def savefig(fig, name):
    fig.write_image(
        os.path.join(PLOTS_DIR, name + '.jpg'), scale=4, height=400, width=1000
    )

def _generate_plot(data, unit):
    
    average = np.average(data)
    fig = px.histogram(data, marginal="violin", nbins=50)

    fig.update_layout(
        template=THEME,
        annotations=[
            go.layout.Annotation(
                x=average,
                y=1,
                font=FONT,
                yref="paper",
                text="Mean = %.2f %s" %(average, unit),
                showarrow=True,
                arrowhead=2,
                ax=0,
                ay=-40
            )
        ],
        shapes=[
            # Line Horizontal
            go.layout.Shape(
                type="line",
                yref="paper",
                x0=average,
                y0=0,
                x1=average,
                y1=1,
                line=dict(
                    color="palevioletred",
                    width=3,
                    #dash="dashdot",
                ),
            ),
        ],
        xaxis=go.layout.XAxis(
            title=go.layout.xaxis.Title(
                text="time",
                font=FONT,
            )
        ),
        yaxis=go.layout.YAxis(
            title=go.layout.yaxis.Title(
                text="Count",
                font=FONT,
            )
        )
    )
    # savefig(fig, name)
    return fig


def plot_hist(data, unit, range_x):
    fig = _generate_plot(data, unit)
    fig.update_xaxes(range=range_x)
    fig.show()
    
In [55]:
BASE_KERNEL="/home/kpsingh/static_call_analysis/base_bzImage"
SCALLS_KERNEL="/home/kpsingh/static_call_analysis/scalls_bzImage"
In [56]:
# eventfd tight loop benchmark
import os
import numpy as np
from scipy import stats


def run_eventfd(results, kernel):
    !cd ../workloads && make

    vm_out = os.path.join('/tmp', results)

    # Run and Pin the VM
    start_vm(kernel)
    vmrun("cat /proc/cmdline")
    vmrun("cat /sys/kernel/security/lsm")
    vmrun("/root/test_progs -t test_lsm")
    pin_vm()
    
    # Run the workload in the VM
    push("../workloads", "/tmp")
    vmrun("/tmp/workloads/run_eventfd.sh 100 " + vm_out)
    
    # Copy the output back, parse it and shut down the VM.
    output = os.path.join("./data", results)
    pull(vm_out, output)
    stop_vm()
    lines = open(output, 'r').read().strip().split('\n')
    return np.asarray(lines, dtype=float) / 1000

base_eventfd = run_eventfd("base_eventfd", BASE_KERNEL)
scalls_eventfd = run_eventfd("scalls_eventfd", SCALLS_KERNEL)
make: Nothing to be done for 'all'.
kernel_path=/home/kpsingh/static_call_analysis/base_bzImage image_path=/home/kpsingh/debian.img
Success
/root/.bashrc: line 25: syntax error: unexpected end of file
console=ttyS0,115200 root=/dev/sda rw nokaslr systemd.unit=multi-user.target isolcpus=2,3
/root/.bashrc: line 25: syntax error: unexpected end of file
capability,selinux,bpf/root/.bashrc: line 25: syntax error: unexpected end of file
Can't find bpf_testmod.ko kernel module: -2
WARNING! Selftests relying on bpf_testmod.ko will be skipped.
#212     test_lsm:OK
Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED
qemu_pid=156783
setting cpufreq governor to performance
/root/.bashrc: line 25: syntax error: unexpected end of file
Makefile                                      100%  693     3.2MB/s   00:00    
eventfd                                       100%   16KB  41.9MB/s   00:00    
run_eventfd.sh                                100%  261     1.0MB/s   00:00    
eventfd.c                                     100% 1095     7.6MB/s   00:00    
/root/.bashrc: line 25: syntax error: unexpected end of file
Running 100 iterations
/root/.bashrc: line 25: syntax error: unexpected end of file
base_eventfd                                  100%  600     2.6MB/s   00:00    
make: Nothing to be done for 'all'.
kernel_path=/home/kpsingh/static_call_analysis/scalls_bzImage image_path=/home/kpsingh/debian.img
Success
/root/.bashrc: line 25: syntax error: unexpected end of file
console=ttyS0,115200 root=/dev/sda rw nokaslr systemd.unit=multi-user.target isolcpus=2,3
/root/.bashrc: line 25: syntax error: unexpected end of file
capability,selinux,bpf/root/.bashrc: line 25: syntax error: unexpected end of file
Can't find bpf_testmod.ko kernel module: -2
WARNING! Selftests relying on bpf_testmod.ko will be skipped.
#212     test_lsm:OK
Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED
qemu_pid=156881
setting cpufreq governor to performance
/root/.bashrc: line 25: syntax error: unexpected end of file
Makefile                                      100%  693     2.9MB/s   00:00    
eventfd                                       100%   16KB  47.7MB/s   00:00    
run_eventfd.sh                                100%  261     1.9MB/s   00:00    
eventfd.c                                     100% 1095     8.2MB/s   00:00    
/root/.bashrc: line 25: syntax error: unexpected end of file
Running 100 iterations
/root/.bashrc: line 25: syntax error: unexpected end of file
scalls_eventfd                                100%  600     2.5MB/s   00:00    
In [57]:
stats_scall = stats.describe(scalls_eventfd)
stats_base = stats.describe(base_eventfd)

delta_pct = (stats_scall.mean - stats_base.mean) * 100 / stats_base.mean

print("Change in time to run the eventfd tightloop = {}".format(delta_pct))

range_x = stats.describe(np.union1d(base_eventfd, scalls_eventfd)).minmax

plot_hist(base_eventfd, "us", range_x)
plot_hist(scalls_eventfd, "us", range_x)
Change in time to run the eventfd tightloop = -9.850793060583205
In [58]:
# Unixbench
import os
from html.parser import HTMLParser

class MyHTMLParser(HTMLParser):

    def __init__(self):
        super().__init__()
        self.prev_table_id = 0
        self.curr_table_id = -1
        self.prev_row_id = 0
        self.curr_row_id = -1
        self.curr_cell_id = 0
        self.prev_cell_id = -1
        self.curr_tag = None
        self.curr_test = None
        self.results = {}
    
    def handle_starttag(self, tag, attrs):
        self.curr_tag = tag
        if tag == "table":
            self.curr_table_id = self.prev_table_id + 1
        if tag == "tr":
            self.curr_row_id = self.prev_row_id + 1
        if tag == "td":
            self.curr_cell_id = self.prev_cell_id + 1

    def handle_endtag(self, tag):
        self.curr_tag = None
        if tag == "table":
            self.prev_table_id = self.curr_table_id
            self.curr_table_id = -1
            self.prev_row_id = 0
            self.curr_row_id = -1
        if tag == "tr":
            self.prev_row_id = self.curr_row_id
            self.curr_row_id = -1
            self.prev_cell_id = 0
            self.curr_cell_id = -1
        if tag == "td":
            self.prev_cell_id = self.curr_cell_id
            self.curr_cell_id = -1

    def handle_data(self, data):
        if self.curr_tag == "td":
            return

        if self.curr_table_id == 2 and self.curr_row_id != 1:
            if self.curr_cell_id == 1:
                self.curr_test = data.strip()
            if self.curr_cell_id == 2:
                self.results[self.curr_test] = data.strip()
                self.curr_test = None
                
                
def _parse_unixbench(results):
    with open(results) as fh:
        parser = MyHTMLParser()
        parser.feed(fh.read())
        return parser.results

def run_unixbench(results, kernel):
    RESULT_FILE='result'
    
    cmd="cd /root/byte-unixbench-master/UnixBench && UB_RESULTDIR='/tmp/{}' UB_OUTPUT_FILE_NAME='{}' taskset -c 3 ./Run -i 4 -c 1 scalls".format(results, RESULT_FILE)
    vm_results = os.path.join('/tmp', results)

    # Run and Pin the VM
    start_vm(kernel)
    vmrun("uname -r")
    pin_vm()
    vmrun(cmd)
    pull(vm_results, './data')
    host_results = os.path.join('./data', results, RESULT_FILE + ".html")
    return _parse_unixbench(host_results)
In [59]:
stop_vm()    
scalls_unixbench = run_unixbench('scalls_unixbench', SCALLS_KERNEL)
kernel_path=/home/kpsingh/static_call_analysis/scalls_bzImage image_path=/home/kpsingh/debian.img
Success
/root/.bashrc: line 25: syntax error: unexpected end of file
6.4.0-rc6-next-20230614-00005-g0754af5e338e
qemu_pid=156963
setting cpufreq governor to performance
/root/.bashrc: line 25: syntax error: unexpected end of file
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_ADDRESS = "de_CH.UTF-8",
	LC_NAME = "de_CH.UTF-8",
	LC_MONETARY = "de_CH.UTF-8",
	LC_PAPER = "de_CH.UTF-8",
	LC_TERMINAL = "iTerm2",
	LC_IDENTIFICATION = "de_CH.UTF-8",
	LC_TELEPHONE = "de_CH.UTF-8",
	LC_MEASUREMENT = "de_CH.UTF-8",
	LC_TIME = "de_CH.UTF-8",
	LC_NUMERIC = "de_CH.UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
make all
make[1]: Entering directory '/root/byte-unixbench-master/UnixBench'
make distr
make[2]: Entering directory '/root/byte-unixbench-master/UnixBench'
Checking distribution of files
./pgms  exists
./src  exists
./testdir  exists
./tmp  exists
./results  exists
make[2]: Leaving directory '/root/byte-unixbench-master/UnixBench'
make programs
make[2]: Entering directory '/root/byte-unixbench-master/UnixBench'
make[2]: Nothing to be done for 'programs'.
make[2]: Leaving directory '/root/byte-unixbench-master/UnixBench'
make[1]: Leaving directory '/root/byte-unixbench-master/UnixBench'
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
sh: 1: 3dinfo: not found

   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   Version 5.1.3                      Based on the Byte Magazine Unix Benchmark

   Multi-CPU version                  Version 5 revisions by Ian Smith,
                                      Sunnyvale, CA, USA
   January 13, 2011                   johantheghost at yahoo period com

------------------------------------------------------------------------------
   Use directories for:
      * File I/O tests (named fs***) = /root/byte-unixbench-master/UnixBench/tmp
      * Results                      = /tmp/scalls_unixbench
------------------------------------------------------------------------------


1 x Execl Throughput  1

1 x Pipe Throughput  1 2 3 4

1 x Process Creation  1

1 x System Call Overhead  1 2 3 4

1 x Pipe-based Context Switching  1 2 3 4

1 x File Write 1024 bufsize 2000 maxblocks  1

1 x Shell Scripts (1 concurrent)  1

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: kpsingh: GNU/Linux
   OS: GNU/Linux -- 6.4.0-rc6-next-20230614-00005-g0754af5e338e -- #76 SMP PREEMPT_DYNAMIC Thu Jun 15 02:31:22 CEST 2023
   Machine: x86_64 (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: AMD Ryzen Threadripper 3970X 32-Core Processor (7386.1 bogomips)
          Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSENTER/SYSEXIT, AMD virtualization, SYSCALL/SYSRET
   CPU 1: AMD Ryzen Threadripper 3970X 32-Core Processor (7386.1 bogomips)
          Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSENTER/SYSEXIT, AMD virtualization, SYSCALL/SYSRET
   CPU 2: AMD Ryzen Threadripper 3970X 32-Core Processor (7386.1 bogomips)
          Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSENTER/SYSEXIT, AMD virtualization, SYSCALL/SYSRET
   CPU 3: AMD Ryzen Threadripper 3970X 32-Core Processor (7386.1 bogomips)
          Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSENTER/SYSEXIT, AMD virtualization, SYSCALL/SYSRET
   00:36:41 up 0 min,  0 user,  load average: 0.00, 0.00, 0.00; runlevel Jun

------------------------------------------------------------------------
Benchmark Run: Thu Jun 15 2023 00:36:41 - 00:42:03
4 CPUs in system; running 1 parallel copy of tests

Execl Throughput                               6529.3 lps   (29.6 s, 1 samples)
File Write 1024 bufsize 2000 maxblocks      3153168.0 KBps  (30.0 s, 1 samples)
Pipe Throughput                             2524580.1 lps   (10.0 s, 3 samples)
Pipe-based Context Switching                 382655.6 lps   (10.0 s, 3 samples)
Process Creation                              22936.3 lps   (30.0 s, 1 samples)
Shell Scripts (1 concurrent)                  16102.9 lpm   (60.0 s, 1 samples)
System Call Overhead                        2597636.0 lps   (10.0 s, 3 samples)

System Benchmarks Partial Index              BASELINE       RESULT    INDEX
Execl Throughput                                 43.0       6529.3   1518.4
File Write 1024 bufsize 2000 maxblocks            ---    3153168.0      ---
Pipe Throughput                               12440.0    2524580.1   2029.4
Pipe-based Context Switching                   4000.0     382655.6    956.6
Process Creation                                126.0      22936.3   1820.3
Shell Scripts (1 concurrent)                     42.4      16102.9   3797.9
System Call Overhead                          15000.0    2597636.0   1731.8
                                                                   ========
System Benchmarks Index Score (Partial Only)                         1811.1

/root/.bashrc: line 25: syntax error: unexpected end of file
result.log                                    100% 4313    11.5MB/s   00:00    
result                                        100% 2670    18.1MB/s   00:00    
result.html                                   100% 5683    20.7MB/s   00:00    
In [60]:
stop_vm()
base_unixbench = run_unixbench('base_unixbench', BASE_KERNEL)    
kernel_path=/home/kpsingh/static_call_analysis/base_bzImage image_path=/home/kpsingh/debian.img
Success
/root/.bashrc: line 25: syntax error: unexpected end of file
6.4.0-rc6-next-20230614
qemu_pid=157193
setting cpufreq governor to performance
/root/.bashrc: line 25: syntax error: unexpected end of file
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_ADDRESS = "de_CH.UTF-8",
	LC_NAME = "de_CH.UTF-8",
	LC_MONETARY = "de_CH.UTF-8",
	LC_PAPER = "de_CH.UTF-8",
	LC_TERMINAL = "iTerm2",
	LC_IDENTIFICATION = "de_CH.UTF-8",
	LC_TELEPHONE = "de_CH.UTF-8",
	LC_MEASUREMENT = "de_CH.UTF-8",
	LC_TIME = "de_CH.UTF-8",
	LC_NUMERIC = "de_CH.UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
make all
make[1]: Entering directory '/root/byte-unixbench-master/UnixBench'
make distr
make[2]: Entering directory '/root/byte-unixbench-master/UnixBench'
Checking distribution of files
./pgms  exists
./src  exists
./testdir  exists
./tmp  exists
./results  exists
make[2]: Leaving directory '/root/byte-unixbench-master/UnixBench'
make programs
make[2]: Entering directory '/root/byte-unixbench-master/UnixBench'
make[2]: Nothing to be done for 'programs'.
make[2]: Leaving directory '/root/byte-unixbench-master/UnixBench'
make[1]: Leaving directory '/root/byte-unixbench-master/UnixBench'
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
sh: 1: 3dinfo: not found

   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   Version 5.1.3                      Based on the Byte Magazine Unix Benchmark

   Multi-CPU version                  Version 5 revisions by Ian Smith,
                                      Sunnyvale, CA, USA
   January 13, 2011                   johantheghost at yahoo period com

------------------------------------------------------------------------------
   Use directories for:
      * File I/O tests (named fs***) = /root/byte-unixbench-master/UnixBench/tmp
      * Results                      = /tmp/base_unixbench
------------------------------------------------------------------------------


1 x Execl Throughput  1

1 x Pipe Throughput  1 2 3 4

1 x Process Creation  1

1 x System Call Overhead  1 2 3 4

1 x Pipe-based Context Switching  1 2 3 4

1 x File Write 1024 bufsize 2000 maxblocks  1

1 x Shell Scripts (1 concurrent)  1

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: kpsingh: GNU/Linux
   OS: GNU/Linux -- 6.4.0-rc6-next-20230614 -- #77 SMP PREEMPT_DYNAMIC Thu Jun 15 02:32:41 CEST 2023
   Machine: x86_64 (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: AMD Ryzen Threadripper 3970X 32-Core Processor (7386.1 bogomips)
          Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSENTER/SYSEXIT, AMD virtualization, SYSCALL/SYSRET
   CPU 1: AMD Ryzen Threadripper 3970X 32-Core Processor (7386.1 bogomips)
          Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSENTER/SYSEXIT, AMD virtualization, SYSCALL/SYSRET
   CPU 2: AMD Ryzen Threadripper 3970X 32-Core Processor (7386.1 bogomips)
          Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSENTER/SYSEXIT, AMD virtualization, SYSCALL/SYSRET
   CPU 3: AMD Ryzen Threadripper 3970X 32-Core Processor (7386.1 bogomips)
          Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSENTER/SYSEXIT, AMD virtualization, SYSCALL/SYSRET
   00:42:12 up 0 min,  0 user,  load average: 0.00, 0.00, 0.00; runlevel Jun

------------------------------------------------------------------------
Benchmark Run: Thu Jun 15 2023 00:42:12 - 00:47:34
4 CPUs in system; running 1 parallel copy of tests

Execl Throughput                               6416.1 lps   (29.7 s, 1 samples)
File Write 1024 bufsize 2000 maxblocks      2910434.0 KBps  (30.0 s, 1 samples)
Pipe Throughput                             2323171.5 lps   (10.0 s, 3 samples)
Pipe-based Context Switching                 375948.6 lps   (10.0 s, 3 samples)
Process Creation                              21788.6 lps   (30.0 s, 1 samples)
Shell Scripts (1 concurrent)                  15753.9 lpm   (60.0 s, 1 samples)
System Call Overhead                        2577029.8 lps   (10.0 s, 3 samples)

System Benchmarks Partial Index              BASELINE       RESULT    INDEX
Execl Throughput                                 43.0       6416.1   1492.1
File Write 1024 bufsize 2000 maxblocks            ---    2910434.0      ---
Pipe Throughput                               12440.0    2323171.5   1867.5
Pipe-based Context Switching                   4000.0     375948.6    939.9
Process Creation                                126.0      21788.6   1729.3
Shell Scripts (1 concurrent)                     42.4      15753.9   3715.6
System Call Overhead                          15000.0    2577029.8   1718.0
                                                                   ========
System Benchmarks Index Score (Partial Only)                         1751.9

/root/.bashrc: line 25: syntax error: unexpected end of file
result.log                                    100% 4284    10.8MB/s   00:00    
result                                        100% 2650    18.9MB/s   00:00    
result.html                                   100% 5663    22.0MB/s   00:00    
In [61]:
print("{:60} {}".format("Benchmark", "Delta: (+ is better)"))
for test in base_unixbench.keys():
    delta = (float(scalls_unixbench[test]) - float(base_unixbench[test])) * 100/ float(base_unixbench[test])
    print("{:60} {:+.4f}".format(test, delta))
Benchmark                                                    Delta: (+ is better)
Execl Throughput                                             +1.7643
File Write 1024 bufsize 2000 maxblocks                       +8.3401
Pipe Throughput                                              +8.6696
Pipe-based Context Switching                                 +1.7840
Process Creation                                             +5.2674
Shell Scripts (1 concurrent)                                 +2.2153
System Call Overhead                                         +0.7996
System Benchmarks Index Score (Partial Only):                +3.3792
In [62]:
# Dig into the "why?"

# eventfd tight loop benchmark
import os

def investigate(kernel, events):
    !cd ../workloads && make

    # Run and Pin the VM
    start_vm(kernel)
    vmrun("cat /proc/cmdline")
    vmrun("cat /sys/kernel/security/lsm")
    vmrun("/root/test_progs -t test_lsm")
    pin_vm()
    
    # Run the workload in the VM
    push("../workloads", "/tmp")
    vmrun("taskset -c 3 perf stat -e '{}' /tmp/workloads/eventfd".format(",".join(events)))
    stop_vm()
    
EVENTS = [
    'instructions',
    'branch-misses',
    'cache-misses',
    'branch-loads',
    'branch-load-misses',
]

investigate(BASE_KERNEL, EVENTS)
investigate(SCALLS_KERNEL, EVENTS)
make: Nothing to be done for 'all'.
kernel_path=/home/kpsingh/static_call_analysis/base_bzImage image_path=/home/kpsingh/debian.img
qemu-system-x86_64: -qmp tcp:localhost:4444,server,nowait: Failed to find an available port: Address already in use
/root/.bashrc: line 25: syntax error: unexpected end of file
console=ttyS0,115200 root=/dev/sda rw nokaslr systemd.unit=multi-user.target isolcpus=2,3
/root/.bashrc: line 25: syntax error: unexpected end of file
capability,selinux,bpf/root/.bashrc: line 25: syntax error: unexpected end of file
Can't find bpf_testmod.ko kernel module: -2
WARNING! Selftests relying on bpf_testmod.ko will be skipped.
#212     test_lsm:OK
Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED
qemu_pid=157193
setting cpufreq governor to performance
/root/.bashrc: line 25: syntax error: unexpected end of file
Makefile                                      100%  693     3.1MB/s   00:00    
eventfd                                       100%   16KB  43.7MB/s   00:00    
run_eventfd.sh                                100%  261     1.0MB/s   00:00    
eventfd.c                                     100% 1095     6.9MB/s   00:00    
/root/.bashrc: line 25: syntax error: unexpected end of file
14051

 Performance counter stats for '/tmp/workloads/eventfd':

          73429621      instructions                                                       
            607297      branch-misses                                                      
             33841      cache-misses                                                       
          18159089      branch-loads                                                       
            607315      branch-load-misses                                                 

       0.439230043 seconds time elapsed

       0.000000000 seconds user
       0.038396000 seconds sys


make: Nothing to be done for 'all'.
kernel_path=/home/kpsingh/static_call_analysis/scalls_bzImage image_path=/home/kpsingh/debian.img
Success
/root/.bashrc: line 25: syntax error: unexpected end of file
console=ttyS0,115200 root=/dev/sda rw nokaslr systemd.unit=multi-user.target isolcpus=2,3
/root/.bashrc: line 25: syntax error: unexpected end of file
capability,selinux,bpf/root/.bashrc: line 25: syntax error: unexpected end of file
Can't find bpf_testmod.ko kernel module: -2
WARNING! Selftests relying on bpf_testmod.ko will be skipped.
#212     test_lsm:OK
Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED
qemu_pid=157464
setting cpufreq governor to performance
/root/.bashrc: line 25: syntax error: unexpected end of file
Makefile                                      100%  693     3.0MB/s   00:00    
eventfd                                       100%   16KB  49.2MB/s   00:00    
run_eventfd.sh                                100%  261   984.6KB/s   00:00    
eventfd.c                                     100% 1095     4.4MB/s   00:00    
/root/.bashrc: line 25: syntax error: unexpected end of file
12415

 Performance counter stats for '/tmp/workloads/eventfd':

          70417580      instructions                                                       
            407088      branch-misses                                                      
             30918      cache-misses                                                       
          17056544      branch-loads                                                       
            407106      branch-load-misses                                                 

       0.437186066 seconds time elapsed

       0.000000000 seconds user
       0.036402000 seconds sys